{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import tushare as ts\n",
    "import matplotlib.pyplot as plt\n",
    "from setting import get_engine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "api = ts.get_apis()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = ts.bar('300144',conn=api,start_date='2018-01-01')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>code</th>\n",
       "      <th>open</th>\n",
       "      <th>close</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>vol</th>\n",
       "      <th>amount</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-03-29</th>\n",
       "      <td>300144</td>\n",
       "      <td>19.88</td>\n",
       "      <td>20.16</td>\n",
       "      <td>20.19</td>\n",
       "      <td>19.88</td>\n",
       "      <td>15050.0</td>\n",
       "      <td>30236284.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-28</th>\n",
       "      <td>300144</td>\n",
       "      <td>20.26</td>\n",
       "      <td>19.86</td>\n",
       "      <td>20.63</td>\n",
       "      <td>19.85</td>\n",
       "      <td>142126.0</td>\n",
       "      <td>286976928.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-27</th>\n",
       "      <td>300144</td>\n",
       "      <td>19.95</td>\n",
       "      <td>20.40</td>\n",
       "      <td>20.50</td>\n",
       "      <td>19.84</td>\n",
       "      <td>125721.0</td>\n",
       "      <td>254512320.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-26</th>\n",
       "      <td>300144</td>\n",
       "      <td>19.22</td>\n",
       "      <td>19.69</td>\n",
       "      <td>19.79</td>\n",
       "      <td>19.05</td>\n",
       "      <td>95743.0</td>\n",
       "      <td>186872368.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-23</th>\n",
       "      <td>300144</td>\n",
       "      <td>19.11</td>\n",
       "      <td>19.20</td>\n",
       "      <td>19.80</td>\n",
       "      <td>19.06</td>\n",
       "      <td>112123.0</td>\n",
       "      <td>216926128.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              code   open  close   high    low       vol       amount\n",
       "datetime                                                             \n",
       "2018-03-29  300144  19.88  20.16  20.19  19.88   15050.0   30236284.0\n",
       "2018-03-28  300144  20.26  19.86  20.63  19.85  142126.0  286976928.0\n",
       "2018-03-27  300144  19.95  20.40  20.50  19.84  125721.0  254512320.0\n",
       "2018-03-26  300144  19.22  19.69  19.79  19.05   95743.0  186872368.0\n",
       "2018-03-23  300144  19.11  19.20  19.80  19.06  112123.0  216926128.0"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime\n",
       "2018-03-29    20.16\n",
       "2018-03-28    19.86\n",
       "2018-03-27    20.40\n",
       "2018-03-26    19.69\n",
       "2018-03-23    19.20\n",
       "2018-03-22    19.68\n",
       "2018-03-21    19.81\n",
       "2018-03-20    20.45\n",
       "2018-03-19    20.09\n",
       "2018-03-16    19.90\n",
       "2018-03-15    20.29\n",
       "2018-03-14    20.25\n",
       "2018-03-13    20.64\n",
       "2018-03-12    20.50\n",
       "2018-03-09    20.59\n",
       "2018-03-08    19.61\n",
       "2018-03-07    19.75\n",
       "2018-03-06    19.55\n",
       "2018-03-05    19.39\n",
       "2018-03-02    19.16\n",
       "2018-03-01    19.63\n",
       "2018-02-28    19.66\n",
       "2018-02-27    19.46\n",
       "2018-02-26    19.31\n",
       "2018-02-23    19.12\n",
       "2018-02-22    19.06\n",
       "2018-02-14    18.50\n",
       "2018-02-13    18.57\n",
       "2018-02-12    18.72\n",
       "2018-02-09    17.98\n",
       "2018-02-08    18.69\n",
       "2018-02-07    18.37\n",
       "2018-02-06    17.67\n",
       "2018-02-05    18.78\n",
       "2018-02-02    18.87\n",
       "2018-02-01    18.38\n",
       "2018-01-31    18.45\n",
       "2018-01-30    19.19\n",
       "2018-01-29    19.24\n",
       "2018-01-26    19.50\n",
       "2018-01-25    19.41\n",
       "2018-01-24    19.54\n",
       "2018-01-23    18.44\n",
       "2018-01-22    18.64\n",
       "2018-01-19    18.05\n",
       "2018-01-18    18.13\n",
       "2018-01-17    18.30\n",
       "2018-01-16    17.98\n",
       "2018-01-15    17.82\n",
       "2018-01-12    18.18\n",
       "2018-01-11    18.27\n",
       "2018-01-10    18.30\n",
       "2018-01-09    18.50\n",
       "2018-01-08    18.68\n",
       "2018-01-05    18.82\n",
       "2018-01-04    18.87\n",
       "2018-01-03    18.78\n",
       "2018-01-02    18.56\n",
       "Name: close, dtype: float64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "closed = df['close']\n",
    "closed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\python27\\lib\\site-packages\\ipykernel_launcher.py:1: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).ohlc()\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    }
   ],
   "source": [
    "year_closed = closed.resample('w',how='ohlc')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-01-07</th>\n",
       "      <td>18.56</td>\n",
       "      <td>18.87</td>\n",
       "      <td>18.56</td>\n",
       "      <td>18.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-14</th>\n",
       "      <td>18.68</td>\n",
       "      <td>18.68</td>\n",
       "      <td>18.18</td>\n",
       "      <td>18.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-21</th>\n",
       "      <td>17.82</td>\n",
       "      <td>18.30</td>\n",
       "      <td>17.82</td>\n",
       "      <td>18.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-28</th>\n",
       "      <td>18.64</td>\n",
       "      <td>19.54</td>\n",
       "      <td>18.44</td>\n",
       "      <td>19.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-04</th>\n",
       "      <td>19.24</td>\n",
       "      <td>19.24</td>\n",
       "      <td>18.38</td>\n",
       "      <td>18.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11</th>\n",
       "      <td>18.78</td>\n",
       "      <td>18.78</td>\n",
       "      <td>17.67</td>\n",
       "      <td>17.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-18</th>\n",
       "      <td>18.72</td>\n",
       "      <td>18.72</td>\n",
       "      <td>18.50</td>\n",
       "      <td>18.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-25</th>\n",
       "      <td>19.06</td>\n",
       "      <td>19.12</td>\n",
       "      <td>19.06</td>\n",
       "      <td>19.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-04</th>\n",
       "      <td>19.31</td>\n",
       "      <td>19.66</td>\n",
       "      <td>19.16</td>\n",
       "      <td>19.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-11</th>\n",
       "      <td>19.39</td>\n",
       "      <td>20.59</td>\n",
       "      <td>19.39</td>\n",
       "      <td>20.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-18</th>\n",
       "      <td>20.50</td>\n",
       "      <td>20.64</td>\n",
       "      <td>19.90</td>\n",
       "      <td>19.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-03-25</th>\n",
       "      <td>20.09</td>\n",
       "      <td>20.45</td>\n",
       "      <td>19.20</td>\n",
       "      <td>19.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-04-01</th>\n",
       "      <td>19.69</td>\n",
       "      <td>20.40</td>\n",
       "      <td>19.69</td>\n",
       "      <td>20.16</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             open   high    low  close\n",
       "datetime                              \n",
       "2018-01-07  18.56  18.87  18.56  18.82\n",
       "2018-01-14  18.68  18.68  18.18  18.18\n",
       "2018-01-21  17.82  18.30  17.82  18.05\n",
       "2018-01-28  18.64  19.54  18.44  19.50\n",
       "2018-02-04  19.24  19.24  18.38  18.87\n",
       "2018-02-11  18.78  18.78  17.67  17.98\n",
       "2018-02-18  18.72  18.72  18.50  18.50\n",
       "2018-02-25  19.06  19.12  19.06  19.12\n",
       "2018-03-04  19.31  19.66  19.16  19.16\n",
       "2018-03-11  19.39  20.59  19.39  20.59\n",
       "2018-03-18  20.50  20.64  19.90  19.90\n",
       "2018-03-25  20.09  20.45  19.20  19.20\n",
       "2018-04-01  19.69  20.40  19.69  20.16"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "year_closed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "apt = (year_closed.high-year_closed.low)/year_closed.low*100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime\n",
       "2018-01-07    1.670259\n",
       "2018-01-14    2.750275\n",
       "2018-01-21    2.693603\n",
       "2018-01-28    5.965293\n",
       "2018-02-04    4.678999\n",
       "2018-02-11    6.281834\n",
       "2018-02-18    1.189189\n",
       "2018-02-25    0.314795\n",
       "2018-03-04    2.609603\n",
       "2018-03-11    6.188757\n",
       "2018-03-18    3.718593\n",
       "2018-03-25    6.510417\n",
       "Freq: W-SUN, dtype: float64"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "apt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime\n",
       "2018-03-29    20.16\n",
       "2018-03-28    19.86\n",
       "2018-03-27    20.40\n",
       "2018-03-26    19.69\n",
       "2018-03-23    19.20\n",
       "2018-03-22    19.68\n",
       "2018-03-21    19.81\n",
       "2018-03-20    20.45\n",
       "2018-03-19    20.09\n",
       "2018-03-16    19.90\n",
       "2018-03-15    20.29\n",
       "2018-03-14    20.25\n",
       "2018-03-13    20.64\n",
       "2018-03-12    20.50\n",
       "2018-03-09    20.59\n",
       "2018-03-08    19.61\n",
       "2018-03-07    19.75\n",
       "2018-03-06    19.55\n",
       "2018-03-05    19.39\n",
       "2018-03-02    19.16\n",
       "2018-03-01    19.63\n",
       "2018-02-28    19.66\n",
       "2018-02-27    19.46\n",
       "2018-02-26    19.31\n",
       "2018-02-23    19.12\n",
       "2018-02-22    19.06\n",
       "2018-02-14    18.50\n",
       "2018-02-13    18.57\n",
       "2018-02-12    18.72\n",
       "2018-02-09    17.98\n",
       "2018-02-08    18.69\n",
       "2018-02-07    18.37\n",
       "2018-02-06    17.67\n",
       "2018-02-05    18.78\n",
       "2018-02-02    18.87\n",
       "2018-02-01    18.38\n",
       "2018-01-31    18.45\n",
       "2018-01-30    19.19\n",
       "2018-01-29    19.24\n",
       "2018-01-26    19.50\n",
       "2018-01-25    19.41\n",
       "2018-01-24    19.54\n",
       "2018-01-23    18.44\n",
       "2018-01-22    18.64\n",
       "2018-01-19    18.05\n",
       "2018-01-18    18.13\n",
       "2018-01-17    18.30\n",
       "2018-01-16    17.98\n",
       "2018-01-15    17.82\n",
       "2018-01-12    18.18\n",
       "2018-01-11    18.27\n",
       "2018-01-10    18.30\n",
       "2018-01-09    18.50\n",
       "2018-01-08    18.68\n",
       "2018-01-05    18.82\n",
       "2018-01-04    18.87\n",
       "2018-01-03    18.78\n",
       "2018-01-02    18.56\n",
       "Name: close, dtype: float64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=df.dropna(axis=0)\n",
    "df['close']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x83cb850>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x83e5c90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['close'].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "global name '_converter' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-62-37327cb8c862>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0myear_closed\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/pandas/plotting/_core.pyc\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, x, y, kind, ax, subplots, sharex, sharey, layout, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, secondary_y, sort_columns, **kwds)\u001b[0m\n\u001b[1;32m   2675\u001b[0m                           \u001b[0mfontsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfontsize\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolormap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcolormap\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtable\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtable\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2676\u001b[0m                           \u001b[0myerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0myerr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mxerr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msecondary_y\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msecondary_y\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2677\u001b[0;31m                           sort_columns=sort_columns, **kwds)\n\u001b[0m\u001b[1;32m   2678\u001b[0m     \u001b[0m__call__\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplot_frame\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   2679\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/pandas/plotting/_core.pyc\u001b[0m in \u001b[0;36mplot_frame\u001b[0;34m(data, x, y, kind, ax, subplots, sharex, sharey, layout, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, secondary_y, sort_columns, **kwds)\u001b[0m\n\u001b[1;32m   1900\u001b[0m                  \u001b[0myerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0myerr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxerr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mxerr\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1901\u001b[0m                  \u001b[0msecondary_y\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msecondary_y\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msort_columns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msort_columns\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1902\u001b[0;31m                  **kwds)\n\u001b[0m\u001b[1;32m   1903\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1904\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/pandas/plotting/_core.pyc\u001b[0m in \u001b[0;36m_plot\u001b[0;34m(data, x, y, subplots, ax, kind, **kwds)\u001b[0m\n\u001b[1;32m   1725\u001b[0m                             \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1726\u001b[0m                 \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mseries\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1727\u001b[0;31m         \u001b[0mplot_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mklass\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msubplots\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msubplots\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1728\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1729\u001b[0m     \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgenerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/pandas/plotting/_core.pyc\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, **kwargs)\u001b[0m\n\u001b[1;32m    929\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    930\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 931\u001b[0;31m         \u001b[0mMPLPlot\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    932\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstacked\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    933\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfillna\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/pandas/plotting/_core.pyc\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, kind, by, subplots, sharex, sharey, use_index, figsize, grid, legend, rot, ax, fig, title, xlim, ylim, xticks, yticks, sort_columns, fontsize, secondary_y, colormap, table, layout, **kwds)\u001b[0m\n\u001b[1;32m     98\u001b[0m                  table=False, layout=None, **kwds):\n\u001b[1;32m     99\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 100\u001b[0;31m         \u001b[0m_converter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_WARN\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    101\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    102\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mby\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mby\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: global name '_converter' is not defined"
     ]
    }
   ],
   "source": [
    "engine =get_engine('db_zdt')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "█\r"
     ]
    }
   ],
   "source": [
    "from filter_stock import Filter_Stock"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "obj = Filter_Stock()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = obj.get_new_stock('2015','2015')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>code</th>\n",
       "      <th>name</th>\n",
       "      <th>industry</th>\n",
       "      <th>area</th>\n",
       "      <th>pe</th>\n",
       "      <th>outstanding</th>\n",
       "      <th>totals</th>\n",
       "      <th>totalAssets</th>\n",
       "      <th>liquidAssets</th>\n",
       "      <th>fixedAssets</th>\n",
       "      <th>...</th>\n",
       "      <th>bvps</th>\n",
       "      <th>pb</th>\n",
       "      <th>undp</th>\n",
       "      <th>perundp</th>\n",
       "      <th>rev</th>\n",
       "      <th>profit</th>\n",
       "      <th>gpr</th>\n",
       "      <th>npr</th>\n",
       "      <th>holders</th>\n",
       "      <th>更新日期</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>timeToMarket</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-05-25</th>\n",
       "      <td>300746</td>\n",
       "      <td>N汉嘉</td>\n",
       "      <td>建筑施工</td>\n",
       "      <td>浙江</td>\n",
       "      <td>36.00</td>\n",
       "      <td>0.53</td>\n",
       "      <td>2.10</td>\n",
       "      <td>84655.75</td>\n",
       "      <td>62115.23</td>\n",
       "      <td>15889.55</td>\n",
       "      <td>...</td>\n",
       "      <td>3.87</td>\n",
       "      <td>2.09</td>\n",
       "      <td>29412.24</td>\n",
       "      <td>1.40</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>18.70</td>\n",
       "      <td>6.51</td>\n",
       "      <td>100201.0</td>\n",
       "      <td>2018-05-25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-05-05</th>\n",
       "      <td>300643</td>\n",
       "      <td>万通智控</td>\n",
       "      <td>汽车配件</td>\n",
       "      <td>浙江</td>\n",
       "      <td>1991.42</td>\n",
       "      <td>0.71</td>\n",
       "      <td>2.00</td>\n",
       "      <td>48480.46</td>\n",
       "      <td>35851.01</td>\n",
       "      <td>9471.17</td>\n",
       "      <td>...</td>\n",
       "      <td>2.07</td>\n",
       "      <td>8.77</td>\n",
       "      <td>6885.06</td>\n",
       "      <td>0.34</td>\n",
       "      <td>-4.54</td>\n",
       "      <td>-94.65</td>\n",
       "      <td>26.56</td>\n",
       "      <td>0.74</td>\n",
       "      <td>17863.0</td>\n",
       "      <td>2018-05-25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-05-23</th>\n",
       "      <td>300745</td>\n",
       "      <td>欣锐科技</td>\n",
       "      <td>汽车配件</td>\n",
       "      <td>深圳</td>\n",
       "      <td>20.66</td>\n",
       "      <td>0.29</td>\n",
       "      <td>1.15</td>\n",
       "      <td>112515.45</td>\n",
       "      <td>98528.06</td>\n",
       "      <td>8233.80</td>\n",
       "      <td>...</td>\n",
       "      <td>8.48</td>\n",
       "      <td>2.40</td>\n",
       "      <td>28390.36</td>\n",
       "      <td>2.48</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>29.77</td>\n",
       "      <td>18.97</td>\n",
       "      <td>56498.0</td>\n",
       "      <td>2018-05-25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-11</th>\n",
       "      <td>300580</td>\n",
       "      <td>贝斯特</td>\n",
       "      <td>汽车配件</td>\n",
       "      <td>江苏</td>\n",
       "      <td>33.83</td>\n",
       "      <td>0.66</td>\n",
       "      <td>2.00</td>\n",
       "      <td>153087.30</td>\n",
       "      <td>79671.81</td>\n",
       "      <td>51525.51</td>\n",
       "      <td>...</td>\n",
       "      <td>6.43</td>\n",
       "      <td>3.32</td>\n",
       "      <td>35882.65</td>\n",
       "      <td>1.79</td>\n",
       "      <td>22.17</td>\n",
       "      <td>2.29</td>\n",
       "      <td>37.93</td>\n",
       "      <td>17.82</td>\n",
       "      <td>21940.0</td>\n",
       "      <td>2018-05-25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-11-06</th>\n",
       "      <td>300720</td>\n",
       "      <td>海川智能</td>\n",
       "      <td>电器仪表</td>\n",
       "      <td>广东</td>\n",
       "      <td>114.29</td>\n",
       "      <td>0.18</td>\n",
       "      <td>0.72</td>\n",
       "      <td>46308.18</td>\n",
       "      <td>32482.15</td>\n",
       "      <td>9548.55</td>\n",
       "      <td>...</td>\n",
       "      <td>5.94</td>\n",
       "      <td>6.23</td>\n",
       "      <td>14848.82</td>\n",
       "      <td>2.06</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>55.91</td>\n",
       "      <td>22.28</td>\n",
       "      <td>12821.0</td>\n",
       "      <td>2018-05-25</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                code  name industry area       pe  outstanding  totals  \\\n",
       "timeToMarket                                                             \n",
       "2018-05-25    300746   N汉嘉     建筑施工   浙江    36.00         0.53    2.10   \n",
       "2017-05-05    300643  万通智控     汽车配件   浙江  1991.42         0.71    2.00   \n",
       "2018-05-23    300745  欣锐科技     汽车配件   深圳    20.66         0.29    1.15   \n",
       "2017-01-11    300580   贝斯特     汽车配件   江苏    33.83         0.66    2.00   \n",
       "2017-11-06    300720  海川智能     电器仪表   广东   114.29         0.18    0.72   \n",
       "\n",
       "              totalAssets  liquidAssets  fixedAssets     ...      bvps    pb  \\\n",
       "timeToMarket                                             ...                   \n",
       "2018-05-25       84655.75      62115.23     15889.55     ...      3.87  2.09   \n",
       "2017-05-05       48480.46      35851.01      9471.17     ...      2.07  8.77   \n",
       "2018-05-23      112515.45      98528.06      8233.80     ...      8.48  2.40   \n",
       "2017-01-11      153087.30      79671.81     51525.51     ...      6.43  3.32   \n",
       "2017-11-06       46308.18      32482.15      9548.55     ...      5.94  6.23   \n",
       "\n",
       "                  undp  perundp    rev  profit    gpr    npr   holders  \\\n",
       "timeToMarket                                                             \n",
       "2018-05-25    29412.24     1.40   0.00    0.00  18.70   6.51  100201.0   \n",
       "2017-05-05     6885.06     0.34  -4.54  -94.65  26.56   0.74   17863.0   \n",
       "2018-05-23    28390.36     2.48   0.00    0.00  29.77  18.97   56498.0   \n",
       "2017-01-11    35882.65     1.79  22.17    2.29  37.93  17.82   21940.0   \n",
       "2017-11-06    14848.82     2.06   0.00    0.00  55.91  22.28   12821.0   \n",
       "\n",
       "                    更新日期  \n",
       "timeToMarket              \n",
       "2018-05-25    2018-05-25  \n",
       "2017-05-05    2018-05-25  \n",
       "2018-05-23    2018-05-25  \n",
       "2017-01-11    2018-05-25  \n",
       "2017-11-06    2018-05-25  \n",
       "\n",
       "[5 rows x 23 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "ret_df = df[(df['pe']< 50) & (df['pe']>0)].sort_values(by='pe',ascending=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = open('new_stock.txt','w')\n",
    "for i in df['code'].values:\n",
    "    f.write(i)\n",
    "    f.write('\\n')\n",
    "f.close()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
